package
{
	import config.ConLoader;
	
	import flash.geom.Point;
	import flash.utils.Dictionary;

	/**
	 *关卡管理器 
	 * @author SXT
	 */
	public class LevelManager
	{
		/**
		 *当前关卡 
		 */
		private var level:int;
		
		/**
		 *初始化关卡需要的配置文件 
		 */
		private var config:Dictionary;
		
		public var levelvo:LevelVO;
		
		public function LevelManager(con:ConLoader)
		{
			config = con.configDic;
			levelvo = new LevelVO()
		}
		/**
		 *设置当前关卡 
		 * @param level	当前关卡
		 */
		public function setLevel(level:int):void{
			this.level = level;
			levelvo.monsters = getConfigArr("monster");
			levelvo.towers = getConfigArr("tower");
			levelvo.monstersFrequency = getConfig("frequency ");
			levelvo.round = getConfig("round");
			levelvo.startPoint = getConfigArr("start");
			levelvo.endPoint = getConfigArr("end");
			levelvo.num = getConfigArr("num");
			levelvo.interval = getConfigArr("interval");
			levelvo.map = getConfig("map");
			levelvo.king = getConfig("king");
			levelvo.boss = getConfigArr("boss");
			levelvo.bossinterval = getConfigArr("bossinterval");
		}
		
		/**
		 * 当前关卡的配置
		 * @param type
		 * @return 
		 */
		private function getConfig(type:String):int
		{
			for each(var tmp:* in config["level"]){
				if(int(tmp.level) == level){
					if(tmp[type]){
						return int(tmp[type]);
					}else{
						trace(tmp[type] + "属性不存在");
					}
				}
			}
			return 0;
		}
		
		/**
		 *当前关可以刷新的怪物种类 <br>
		 * 当前关可以使用的炮塔种类
		 * @param type	类型
		 * @return 数组
		 */
		private function getConfigArr(type:String):Array
		{
			for each(var tmp:* in config["level"]){
				if(int(tmp.level) == level){
					return String(tmp[type]).split("#");
				}
			}
			return [];
		}
		
		/**
		 *关卡开始 
		 */
		public function levelStart():void{
			
		}
	}
}